from django.shortcuts import render
from django.http import HttpResponse,JsonResponse
from utils.db import db1
import json

# Create your views here.
def showuseraudit(request):
    sql = "select c.id,c.name,c.tmoney,c.company_name,c.status from customer as c left join reg_form as rf on c.refromid=rf.id left join customer_manager as cm on cm.id=c.manager_id"
    res = db1.find_all(sql)
    return JsonResponse({"code":200,'list':res})
import json
def audit(request):
    import time
    #获取参数
    data = json.loads(request.body)
    time = int(time.time())
    ssql = "select * from customer where id=%d"%(int(data['id']))
    customer = db1.find(ssql)

    #更新constmer表，状态，审核人，审核时间
    sql = "update customer set status=%d,audit_time=%d,audit_name='zs' where id=%d"%(int(data['is_agree']),time,int(data['id']))
    db1.update(sql)
    
    #更新来源表
    sql1 = "select id,tcount from reg_form where id=%d"%(int(customer['refromid']))
    regform = db1.find(sql1)
    number = int(regform['tcount'])+1
    sql2 = 'update reg_form set tcount=%d where id=%d'%(int(number),int(customer['refromid']))
    db1.update(sql2)
    #更新客户经理中的总金额
    sql3 = "select * from customer_manager where id=%d"%(int(customer['manager_id']))
    manager = db1.find(sql3)
    number = int(manager['tmoney'])+int(customer['tmoney'])

    sql4 = 'update customer_manager set tmoney=%d where id=%d'%(int(number),int(customer['manager_id']))
    db1.update(sql4)
    return JsonResponse({"code":200})

def getmes(request):
    sql = 'select name,tcount from reg_form'
    res = db1.find_all(sql)
    list = [{'value':i['tcount'],'name':i['name']} for i in res]
    return JsonResponse({"code":200,'list':list})

def getcustomer(request):
    sql = 'select * from customer'
    res = db1.find_all(sql)
    return JsonResponse({"code":200,'list':res})

from dwebsocket.decorators import accept_websocket
websocketlist=[]

@accept_websocket
def websocket_conn(request):
    if request.is_websocket:
        websocketlist.append(request.websocket)
        
    for message in request.websocket:
            break 

#发送消息
def sendmes(request):
    data = request.POST
    if websocketlist:
        for i in websocketlist:
            mes = [{'name':data['name']}]
            b1 = json.dumps(mes,ensure_ascii=False).encode('utf-8')
            i.send(b1)
    return HttpResponse('ok')





import json
# 存储连接websocket的用户
clients = {}

@accept_websocket
def websocketLink(request):
    # 获取连接
    if request.is_websocket:
        # 新增 用户  连接信息
        clients['admin'] = request.websocket
        # 监听接收客户端发送的消息 或者 客户端断开连接
        for message in request.websocket:
            break

 # 发送消息
def websocketMsg(client, msg):
    b1 = json.dumps(msg,ensure_ascii=False).encode('utf-8')
    client.send(b1)
import time
from utils.rs import rs
# 服务端发送消息
def send():
    now = int(time.time())
  
    sql = "select name from customer where addtime<%d order by id desc limit 2"%(int(now))
    print(sql)
    res = db1.find_all(sql)
 
    val = str(rs.get_value_hash('user1','name'),encoding='utf8')
    print(val)
   
    if clients:
        for i in clients:
             websocketMsg(clients['admin'], [{'name':res}])
    return HttpResponse("ok")

from apscheduler.schedulers.background import BackgroundScheduler

def test(request):
    scheduler = BackgroundScheduler()  
    # 添加调度任务
    # 调度方法为 timedTask，触发器选择 interval(间隔性)，间隔时长为 2 秒
    scheduler.add_job(send, 'interval', seconds=1)
    # 启动调度任务
    scheduler.start()

